package com.zhai.application.md;

import com.google.common.collect.Lists;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

/**
 * @author zhaieryuan
 * @version 1.0.0
 * @description
 * @since 2022/6/21 16:38
 */
public class DemonLearn {

    public static void main(String[] args) {


        List<String> tableListNames = Lists.newArrayList(
                "舟山接收站",
                "湛江宝粤",
                "广东惠来",
                "天津大港",
                "北海铁山港",
                "珠海金湾",
                "内蒙古汇能",
                "榆林金源",
                "深圳迭福",
                "青岛董家口",
                "山东华胜",
                "榆林华辰",
                "榆林榆阳",
                "金源志丹",
                "重庆龙冉",
                "广安华油",
                "宁波北仑",
                "广安武胜",
                "山西华港",
                "福建莆田",
                "靖边西蓝",
                "内蒙乌审旗",
                "江苏如东",
                "迁安翅冀",
                "中煤图克",
                "米脂绿源",
                "内蒙古宏基亿泰",
                "枣庄薛能",
                "内蒙古森泰",
                "阳城舜天达",
                "陕西杨凌",
                "河南京宝",
                "沁水新奥",
                "延安甘谷驿",
                "霸州华气",
                "深圳大鹏",
                "上海海气",
                "兴圣杭锦",
                "宁夏天利丰",
                "延安临镇",
                "延安文安驿",
                "定边绿能",
                "湖北黄冈",
                "东莞九丰",
                "中石化天津接收站",
                "延长志丹",
                "靖边星源",
                "晋煤天庆",
                "杭锦旗新圣",
                "宁夏哈纳斯",
                "巴中同凯",
                "延长安塞",
                "宁夏宏兴",
                "山东钢铁",
                "杭锦旗亨东",
                "宁夏盐池",
                "伊旗正泰易达",
                "兴和华港",
                "内蒙中能",
                "杭锦旗万瑞",
                "宣汉宏浩",
                "永唐秦储配站",
                "济源金瑞",
                "内蒙雅海",
                "宜川新源",
                "舟山接收站",
                "内蒙古通汇",
                "广安武胜",
                "包头寰达",
                "包头亨通",
                "迁安翅冀",
                "山西华港",
                "宁夏天利丰",
                "北海铁山港",
                "内蒙古通汇",
                "广东惠来",
                "沧州中翔站"
                );

        tableListNames.sort(String::compareTo);


        System.out.println(tableListNames);



        List<String> excelListNames = Lists.newArrayList(
                "巴中同凯",
                "霸州华气",
                "包头亨通",
                "包头寰达",
                "北海铁山港",
                "沧州中翔",
                "定边绿能",
                "东莞九丰",
                "福建莆田",
                "广安华油",
                "广安武胜",
                "广东惠来",
                "杭锦旗亨东",
                "杭锦旗万瑞",
                "杭锦旗新圣",
                "河南京宝",
                "湖北黄冈",
                "济源金瑞",
                "佳县中宏",
                "江苏如东",
                "晋煤天庆",
                "靖边西蓝",
                "靖边星源",
                "滦县唐钢",
                "内蒙古宏基亿泰",
                "内蒙古汇能",
                "内蒙古森泰",
                "内蒙古通汇",
                "内蒙乌审旗",
                "内蒙雅海",
                "内蒙中能",
                "宁波北仑",
                "宁夏哈纳斯",
                "宁夏宏兴",
                "宁夏天利丰",
                "宁夏盐池",
                "宁夏易达",
                "迁安翅冀",
                "迁安怡慧达",
                "沁水新奥",
                "青岛董家口",
                "山东钢铁",
                "山东华胜",
                "山西华港",
                "陕西延长",
                "陕西杨凌",
                "上海海气",
                "深圳大鹏",
                "深圳迭福",
                "神木恒凯",
                "唐曹妃甸",
                "天津大港",
                "兴和华港",
                "兴圣杭锦",
                "宣汉宏浩",
                "延安甘谷驿",
                "延安临镇",
                "延安文安驿",
                "延长安塞",
                "延长志丹",
                "阳城舜天达",
                "伊旗正泰易达",
                "宜川新源",
                "永唐秦储配站",
                "榆林华辰",
                "榆林金源",
                "榆林榆阳",
                "榆林长天",
                "枣庄薛能",
                "湛江宝粤",
                "中煤图克",
                "中石化天津接收站",
                "重庆龙冉",
                "舟山接收站",
                "珠海金湾",
                "金源志丹",
                "米脂绿源"
        );

        excelListNames.sort(String::compareTo);


        System.out.println(excelListNames);


        List<String> strings = DemonLearn.subList1(excelListNames,tableListNames);

        System.out.println(strings);


    }


    public static List<String> subList1(List<String> list1, List<String> list2) {
        //空间换时间 降低时间复杂度
        Map<String, String> tempMap = new HashMap<>();
        for(String str:list2){
            tempMap.put(str,str);
        }
        //LinkedList 频繁添加删除 也可以ArrayList容量初始化为List1.size(),防止数据量过大时频繁扩容以及数组复制
        List<String> resList = new LinkedList<>();
        for(String str:list1){
            if(!tempMap.containsKey(str)){
                resList.add(str);
            }
        }
        return resList;
    }
}
